package cn.tedu.thread;
//多线程实现方案二
public class TestThread2 {
    public static void main(String[] args) {
        MyRunnable target=new MyRunnable();
        /**目标业务对象，只需要创建一次，类似于系统给所有玩家发布了同一个任务target*/
        /*原因：Runnable与MyRunnable都没有start（）
        所以需要将接口实现类创建的目标业务对象target与线程类Thread建立关系
        只有建立了关系，才能使用Thread类的start（）以多线程的方式启动线程
         */
        Thread t1=new Thread(target);
        Thread t2=new Thread(target);
        Thread t3=new Thread(target);
        Thread t4=new Thread(target);
    t1.start();
    t2.start();
    t3.start();
    t4.start();


    }
}
class MyRunnable implements Runnable{

    @Override
    public void run() {
        for (int i = 0; i < 30; i++) {
            /**Runnable接口中，只有run（）
             *Thread.currentThread()：获取当前正在执行的线程对象
             * 由于Thread是java.lang包下的，所以可以不导包，直接使用
             * 而且，他是静态方法，可以通过类名直接调用
             * getName():获取当前线程对象的名字*/
            System.out.println(i+"="+Thread.currentThread().getName());
        }
    }
}
